import { showToast } from 'vant';
import ls from '@/lib/ls'
/* 
 * 转换 - 数组参数转换
 */
export function transformArrayProps(arr, transformations) {
    return arr.map(obj => {
        const transformedObj = Object.assign({}, obj);
        for (const [oldProp, newProp] of transformations) {
            if (transformedObj.hasOwnProperty(oldProp)) {
                transformedObj[newProp] = transformedObj[oldProp];
                delete transformedObj[oldProp];
            }
        }
        return transformedObj;
    });
}
/* 
 * 正则 - 验证手机号
 */
export function validateMobile(mobile) {
    const reg = /^1[3-9]\d{9}$/;
    if (!reg.test(mobile)) {
        showToast('请输入正确的手机号')
        return false
    }
    return true
}
/* 
 * 保留两位小数
 */
export function formatNumber(value) {
    if(value){
        return parseFloat(value).toFixed(2);
    }
    else{
        return 0
    }
}
/* 
 * 补齐两位小数
 */
export function formatDecimal(num) {
    let numStr = null;
    if (num === undefined || num === null || num === "" || num === NaN) {
      numStr = num;
    } else {
      numStr = num.toString();
      // console.log(numStr, numStr.indexOf(".") === -1);
      if (numStr.indexOf(".") !== -1 && numStr.split(".")[1].length === 1) {
        numStr += "0";
      } else if (numStr.indexOf(".") === -1) {
        numStr += ".00";
      }
    }
    numStr = parseFloat(numStr).toFixed(2)
    // console.log('numStr',numStr)
    return numStr;
  }
/* 
 * 姓名校验
 */
export function validateName(name) {
     // 长度限制：最大长度为15个字符
  if (name.length > 15) {
    showToast('姓名长度不能超过15个字符')
    return false;
  }

//   // 字符限制：只允许字母和数字
//   if (!/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(name)) {
//     showToast('姓名只能包含汉字、字母和数字')
//     return false;
//   }

  // 空格限制：不允许包含空格
  if (/\s/.test(name)) {
    showToast('姓名不能包含空格')
    return false;
  }
  return true
}

 // 套餐子项数量调整
export function calculateOrderQty(items) {
  // 首先按 indexStr 分组
  const groupedItems = {};
  items.forEach(item => {
    if (!groupedItems[item.indexStr]) {
      groupedItems[item.indexStr] = [];
    }
    groupedItems[item.indexStr].push(item);
  });

  // 处理每个分组
  for (const indexStr in groupedItems) {
    const group = groupedItems[indexStr];
    let itemType2OrderQty = null;

    // 找到itemType为2的对象，并记录其orderQty
    group.forEach(item => {
      if (item.itemType == '2') {
        itemType2OrderQty = item.orderQty;
      }
    });

    if (itemType2OrderQty != null) {
      // 计算其它对象的orderQty乘以itemType为2的对象的orderQty
      group.forEach(item => {
        if (item.itemType == '3') {
          item.orderQty = Number(itemType2OrderQty) * Number(item.orderQty);
        }
      });
    }
  }

  return items;
}

export function hasRole(item) {
  const userMenu = ls.get('userMenu'); // 获取 userMenu

  // 检查 userMenu 是否存在且包含 item
  return userMenu ? userMenu.includes(item) : false;
}